import { topCategory, findAllCategory } from '@/api'

// 存储分类
export default {
  namespaced: true,
  state() {
    return {
      // 分类信息集合
      // 在vuex里面设置，保证了初始化就会有数据，不至于白屏
      list: topCategory.map(item => ({ name: item }))
    }
  },
  mutations: {
    // 修改list中的数据
    SETLIST(state, payload) {
      state.list = payload
    },

    // 定义方法来控制二级分类的显示与隐藏
    SHOW(state, id) {
      const currentCategory = state.list.find(item => item.id === id)
      currentCategory.open = true
    },
    HIDE(state, id) {
      const currentCategory = state.list.find(item => item.id === id)
      currentCategory.open = false
    }
  },
  actions: {
    async getList({ commit }) {
      // const res = await findAllCategory()
      // commit('SETLIST', res.result)

      const { result } = await findAllCategory()

      // 给每一个分类加上一个“open”属性，用来控制对应二级分类的显示和隐藏
      result.forEach(item => {
        item.open = false
      })
      // console.log(result)
      commit('SETLIST', result)
    }
  }
}
